home *** CD-ROM | disk | FTP | other *** search
- /* ModalText.c -- Modal dialog */
-
- #include <Types.h>
- #include <Quickdraw.h>
- #include <Controls.h>
- #include <Dialogs.h>
- #include <Events.h>
- #include <Lists.h>
- #include <Menus.h>
- #include <TextEdit.h>
- #include <Appearance.h>
- #include <stdlib.h>
-
- #include "ResourceDefs.h"
- #include "Miscellany.h"
- #include "ControlUtils.h"
-
- #include "Dispatcher.h"
- #include "ModalText.h"
-
- #define kOKButton 1
- #define kSmallField 2
- #define kLargeField 3
- #define kX12345Field 4
- #define kX12345e6Field 5
- #define kPasswordField 6
- #define kDateField 7
- #define kTimeField 8
- #define kStyledField 9
-
-
- /*----------*/
- Boolean GetModalText (
- DModalTextData* ioData)
- {
- Boolean result = false;
- ModalText* dialog = NewModalText ();
-
- result = AMDialog_RunModal ((AMDialog*)dialog, DLOG_ModalText, (AMSignaler*)ioData);
-
- DeleteModalText (dialog);
-
- return result;
- }
-
- //----------
- ModalText* NewModalText ()
- {
- ModalText* dialog;
-
- dialog = (ModalText*)malloc (sizeof (ModalText));
- ModalText_Init (dialog);
- SetClassID (dialog, classModalText);
-
- return dialog;
- }
-
- //----------
- void DeleteModalText (
- ModalText* dialog)
- {
- ModalText_Free (dialog);
- free (dialog);
- }
-
- //----------
- void ModalText_Init (
- ModalText* self)
- {
- AMDialog_Init ((AMDialog*)self);
- }
-
- //----------
- void ModalText_Free (
- ModalText* self)
- {
- AMDialog_Free ((AMDialog*)self);
- }
-
- //----------
- void ModalText_FinishMake (
- ModalText* self)
- {
- self->mOKHandle = AMDialog_GetControlItem ((AMDialog*)self, kOKButton);
- SetDefaultState (self->mOKHandle, true);
- SetDialogDefaultItem (((AMDialog*)self)->mDialog, kOKButton);
- self->mSmallHandle = AMDialog_GetControlItem ((AMDialog*)self, kSmallField);
- self->mLargeHandle = AMDialog_GetControlItem ((AMDialog*)self, kLargeField);
- self->mX12345Handle = AMDialog_GetControlItem ((AMDialog*)self, kX12345Field);
- self->mX12345e6Handle = AMDialog_GetControlItem ((AMDialog*)self, kX12345e6Field);
- self->mPasswordHandle = AMDialog_GetControlItem ((AMDialog*)self, kPasswordField);
- self->mDateHandle = AMDialog_GetControlItem ((AMDialog*)self, kDateField);
- self->mTimeHandle = AMDialog_GetControlItem ((AMDialog*)self, kTimeField);
- self->mStyledHandle = AMDialog_GetControlItem ((AMDialog*)self, kStyledField);
- }
-
- //----------
- void ModalText_ConnectToData (
- ModalText* self,
- AMSignaler* inData)
- {
- AMDialog_ConnectToData ((AMDialog*)self, inData);
- self->mData = (DModalTextData*) inData;
-
- SetControlTextStr (self->mSmallHandle, GetSmall2 (self->mData));
- SetControlTextStr (self->mLargeHandle, GetLarge2 (self->mData));
- SetControlTextValue (self->mX12345Handle, GetX12346 (self->mData));
- SetControlTextFloat (self->mX12345e6Handle, GetX12345e7 (self->mData));
- SetControlTextStr (self->mPasswordHandle, GetPassword2 (self->mData));
- SetClockDateTime (self->mDateHandle, GetDate2 (self->mData));
- SetClockDateTime (self->mTimeHandle, GetTime2 (self->mData));
- SetControlTextStr (self->mStyledHandle, GetStyled2 (self->mData));
- }
-
- //----------
- void ModalText_DoItem (
- ModalText* self,
- SInt16 inItemHit)
- {
- switch (inItemHit) {
- case kOKButton:
- AMDialog_SetResult ((AMDialog*)self, true);
- break;
- case kSmallField:
- SetSmall2Handle (self->mData, GetEditTextChars (self->mSmallHandle));
- break;
- case kLargeField:
- SetLarge2Handle (self->mData, GetEditTextChars (self->mLargeHandle));
- break;
- case kX12345Field:
- SetX12346 (self->mData, GetControlTextValue (self->mX12345Handle));
- break;
- case kX12345e6Field:
- SetX12345e7 (self->mData, GetControlTextFloat (self->mX12345e6Handle));
- break;
- case kPasswordField:
- SetPassword2Handle (self->mData, GetEditTextChars (self->mPasswordHandle));
- break;
- case kDateField:
- SetDate2 (self->mData, GetClockDateTime (self->mDateHandle));
- break;
- case kTimeField:
- SetTime2 (self->mData, GetClockDateTime (self->mTimeHandle));
- break;
- case kStyledField:
- SetStyled2Handle (self->mData, GetEditTextChars (self->mStyledHandle));
- break;
-
- } // switch
- }
-
- //----------
- void ModalText_DataChanged (
- ModalText* self,
- long inDataID)
- {
- if (inDataID == idSmall2) {
- SetControlTextStr (self->mSmallHandle, GetSmall2 (self->mData));
- }
- if (inDataID == idLarge2) {
- SetControlTextStr (self->mLargeHandle, GetLarge2 (self->mData));
- }
- if (inDataID == idX12346) {
- SetControlTextValue (self->mX12345Handle, GetX12346 (self->mData));
- }
- if (inDataID == idX12345e7) {
- SetControlTextFloat (self->mX12345e6Handle, GetX12345e7 (self->mData));
- }
- if (inDataID == idPassword2) {
- SetControlTextStr (self->mPasswordHandle, GetPassword2 (self->mData));
- }
- if (inDataID == idDate2) {
- SetClockDateTime (self->mDateHandle, GetDate2 (self->mData));
- }
- if (inDataID == idTime2) {
- SetClockDateTime (self->mTimeHandle, GetTime2 (self->mData));
- }
- if (inDataID == idStyled2) {
- SetControlTextStr (self->mStyledHandle, GetStyled2 (self->mData));
- }
- }
-
- //----------
- Boolean ModalText_Filter (
- ModalText* self,
- EventRecord *ioEvent,
- DialogItemIndex *outItemHit)
- {
- return AMDialog_Filter ((AMDialog*)self, ioEvent, outItemHit);
- }
-